﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using SIGERP_Datos.Properties;
using System.Data;
using SIGERP_Entidades;

namespace SIGERP_Datos
{
    public class hndUsuarios
    {
        public static List<Usuario> GetAll()
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.usuario");
            var usuarios = new List<Usuario>();
            foreach (DataRow dtRow in tabla.Rows)
            {
                Usuario u = new Usuario(dtRow);
                usuarios.Add(u);
            }
            return usuarios;
        }

        public static Usuario GetOne(string usu, string pas)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.usuario WHERE nombre_de_usuario='" + usu + "' and pass='" + pas+"'");
            DataRow dtRow = tabla.Rows[0];
            Usuario u = new Usuario(dtRow);
            return u;
        }

        public static void Insert(SIGERP_Entidades.Usuario usuario)
        {

            SqlCommand comando = new SqlCommand();
            comando.CommandText = "INSERT INTO dbo.usuario(nombre_de_usuario,pass,apellido,nombre,email,habilitado) " + "VALUES (@nombre_de_usuario,@pass,@apellido,@nombre,@email,@habilitado)";
            comando.Parameters.AddWithValue("@nombre_de_usuario", usuario.NombreUsuario);
            comando.Parameters.AddWithValue("@pass", usuario.NombreUsuario);
            comando.Parameters.AddWithValue("@apellido", usuario.Apellido);
            comando.Parameters.AddWithValue("@nombre", usuario.Nombre);
            comando.Parameters.AddWithValue("@email", usuario.Email);
            comando.Parameters.AddWithValue("@habilitado", 1); // Arranca habilitado

            Conexion.ejecutaComando(comando);
        }


        public static void Update(SIGERP_Entidades.Usuario usuario)
        {

            SqlCommand comando = new SqlCommand();
            comando.CommandText = "UPDATE INTO dbo.usuario(nombre_de_usuario,pass,apellido,nombre,email,habilitado) " + "VALUES (@nombre_de_usuario,@pass,@apellido,@nombre,@email,@habilitado)";
            comando.Parameters.AddWithValue("@nombre_de_usuario", usuario.NombreUsuario);
            comando.Parameters.AddWithValue("@pass", usuario.NombreUsuario);
            comando.Parameters.AddWithValue("@apellido", usuario.Apellido);
            comando.Parameters.AddWithValue("@nombre", usuario.Nombre);
            comando.Parameters.AddWithValue("@email", usuario.Email);
            comando.Parameters.AddWithValue("@habilitado", usuario.Habilitado);

            Conexion.ejecutaComando(comando);
        }

        public static void Baja(Usuario usuario)
        {
            SqlCommand comando = new SqlCommand();
            comando.CommandText = "delete from usuario where id_usuario=" + usuario.ID;

            Conexion.ejecutaComando(comando);
        }
    }
}
